//% color="#ff9a00" iconWidth=50 iconHeight=40
namespace relay_easy{
  
  //% block="打开 引脚[PIN]的继电器" blockType="command"
  //% PIN.shadow="normal" PIN.defl="pin1" 

  export function relayopen(parameter: any, block: any) {      
   let pin=parameter.PIN.code;  
   let obj=parameter.PIN.parType
   console.log(parameter)
   //根据输入积木生成对象名
   if(obj=="unihiker.unihikerPin"){//行空板引脚
       obj=extractPinCode(pin)
       Generator.addInitHeader("fan_DCopen",`p_${obj}_in=Pin(Pin.P${obj}, Pin.OUT)`);
   }
  else if(obj=="data_stringmc"){//变量
     obj=pin
   }
   else if(obj=="text_normal"){//直接输入
       obj=pin
       
    }
    else{
       obj=pin
    }
   Generator.addImport("from pinpong.board import Board,Pin");
    
   Generator.addCode(`${pin}.write_digital(1)`);
 
  }

  //% block="关闭 引脚[PIN]的继电器" blockType="command"
  //% PIN.shadow="normal" PIN.defl="pin1" 
  export function relayclose(parameter: any, block: any) {      
    let pin=parameter.PIN.code;  
    let obj=parameter.PIN.parType
    console.log(parameter)
    //根据输入积木生成对象名
    if(obj=="unihiker.unihikerPin"){//行空板引脚
        obj=extractPinCode(pin)
        Generator.addInitHeader("fan_DCclose",`p_${obj}_in=Pin(Pin.P${obj}, Pin.OUT)`);
    }
   else if(obj=="data_stringmc"){//变量
      obj=pin
    }
    else if(obj=="text_normal"){//直接输入
        obj=pin
        
     }
     else{
        obj=pin
     }
    Generator.addImport("from pinpong.board import Board,Pin");
     
    Generator.addCode(`${pin}.write_digital(0)`);
  
   }


  function extractPinCode(input: string): string | null {
    // 正则表达式匹配 "Pin.Px" 风格的字符串
    const match = input.match(/Pin\.P(\d+)/);
    // 如果匹配成功，返回匹配的部分（不包括"Pin."）
    return match ? match[1] : null;
  }
  
  
}